package main

import (
	"fmt"
	"os"

	"github.com/spf13/cobra"
	"github.com/yourusername/virt-manager-go/cmd/cli/commands"
)

// 全局配置
var serverURL string

func main() {
	// 初始化客户端管理器
	commands.InitClientManager()

	// 创建根命令
	rootCmd := &cobra.Command{
		Use:   "vmctl",
		Short: "虚拟机管理器命令行工具",
		Long: `vmctl 是一个基于 libvirt 的虚拟机管理器命令行工具，
提供对虚拟机、网络、存储等的完整管理功能。`,
	}

	// 全局标志
	rootCmd.PersistentFlags().StringVarP(&serverURL, "server", "s", "http://localhost:8080", "API 服务器地址")

	// 添加子命令
	rootCmd.AddCommand(commands.NewSystemCommand())
	rootCmd.AddCommand(commands.NewConnectionCommand())
	rootCmd.AddCommand(commands.NewDomainCommand())
	rootCmd.AddCommand(commands.NewNetworkCommand())
	rootCmd.AddCommand(commands.NewStorageCommand())
	rootCmd.AddCommand(commands.NewConsoleCommand())

	// 执行命令
	if err := rootCmd.Execute(); err != nil {
		fmt.Fprintf(os.Stderr, "错误: %v\n", err)
		os.Exit(1)
	}
}
